Use of physical deformation during scanning of an object to generate views of the object

ABSTRACT

Disclosed are methods and systems for determining and displaying a simulated deformation of a 3D object data model. In one aspect, a method is disclosed that includes causing a force to be applied to an object to cause a deformation of the object and causing a plurality of reference scans of the object to be captured. The method further includes, based on the plurality of reference scans, generating a 3D object data model representing the object and, further based on the plurality of reference scans, identifying a constraint point of the 3D object data model, where the constraint point represents a point of minimum deformation of the object. The method still further includes selecting a predefined deformation model, where the predefined deformation model defines a simulated deformation, and where the simulated deformation simulates at least a portion of the deformation of the object proximate to the point of minimum deformation.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. patent application Ser. No.13/603,359 filed on Sep. 4, 2012, which claims priority to U.S.Provisional Application No. 61/674,056 filed on Jul. 20, 2012. Theentirety of each of U.S. patent application Ser. No. 13/603,359 and U.S.Provisional Application No. 61/674,056 is herein incorporated byreference.

BACKGROUND

Three-dimensional (3D) scanning and digitization have many applicationsin a number of industries and services. For example, products may bescanned and digitized in order to ensure conformity of product shape andproduct measurement in industrial production systems. As anotherexample, prototypes may be scanned and digitized to assist with designand stylizing in industrial design. As still other examples, complexparts may be scanned and digitized for the purpose of reverseengineering, objects may be scanned and digitized to allow interactivevisualization in multimedia applications, and artwork and artifacts maybe scanned and digitized to create 3D documentation of such works. Otherapplications of 3D scanning and digitization exist as well.

A number of 3D scanning and digitization techniques exist, including,for example, structured light illumination techniques, x-ray,ultrasound, and magnetic resonance stimulus techniques, and videoprocessing techniques. Each of these techniques typically includescapturing incremental data from an object, deriving 3D data from thecaptured incremental data, and registering the incremental data to acommon 3D coordinate system, resulting in a 3D object data model of thescanned object.

SUMMARY

Disclosed are methods and systems for determining simulated deformationof three-dimensional (3D) object data models by deforming objects duringscanning. Also disclosed are methods and systems for displaying asimulated deformation of a 3D object data model.

In one example, a method is disclosed that includes causing a force tobe applied to an object to cause a deformation of the object and, duringthe deformation of the object, causing a plurality of reference scans ofthe object to be captured. The method further includes, based on theplurality of reference scans, determining a 3D object data modelrepresenting the object and, further based on the plurality of referencescans, identifying a constraint point of the 3D object data model, wherethe constraint point represents a point substantially of minimumdeformation of the object. The method still further includes associatinga predefined deformation model with the constraint point, where thepredefined deformation model defines a simulated deformation, and wherethe simulated deformation simulates at least a portion of thedeformation of the object proximate to the point substantially ofminimum deformation.

In another example, a method is disclosed that includes providing adatabase of three-dimensional (3D) object data models and, for each ofthe 3D object data models, maintaining one or more force models, whereeach of the one or more force models comprises information indicative of(i) a force, (ii) a constraint point of the 3D object data model, and(iii) a predefined deformation model, where the predefined deformationmodel defines simulated deformation of the 3D object data modelproximate to the constraint point. The method further includes receivinga request to generate a simulated deformation of a given 3D object datamodel from the database of 3D object data models using a given force andselecting from the one or more force models for the given 3D object datamodel at least one force model that comprises information indicative ofthe given force. The method still further includes generating thesimulated deformation of the given 3D object data model, where thesimulated deformation is generated using the at least one selected forcemodel.

In yet another example, an article of manufacture is disclosed thatincludes a computer-readable medium, having stored therein programinstructions that, upon execution by a computing device, cause thecomputing device to perform the functions of the example methoddescribed above.

In yet another example, a computer-based system is disclosed thatincludes a web-based interface, at least one processor, and datastorage. The data storage comprises one or more force models for a 3Dobject data model, where each of the one or more force models comprisesinformation indicative of (a) a force, (b) a constraint point of the 3Dobject data model, and (c) a predefined deformation model, where thepredefined deformation model defines simulated deformation of the 3Dobject data model proximate to the constraint point. The data storagefurther comprises instructions executable by the at least one processorto (a) receive, via the web-based interface, a request to generate asimulated deformation of a given 3D object data model using a givenforce, (b) in response to receiving the request to generate thesimulated deformation of the given 3D object data model using the givenforce, select at least one force model from the one or more force modelsthat comprises information indicative of the given force, and (c)generate, via the web-based interface, the simulated deformation of the3D object data model, where the simulated deformation is generated usingthe at least one selected force model.

The foregoing summary is illustrative only and is not intended to be inany way limiting. In addition to the illustrative aspects, embodiments,and features described above, further aspects, embodiments, and featureswill become apparent by reference to the figures and the followingdetailed description.

BRIEF DESCRIPTION OF THE FIGURES

FIGS. 1A-B illustrate an example three-dimensional (3D) scanning (1A)and digitization (1B) system for defining a simulated deformation of a3D object data model, in accordance with embodiments described herein.

FIG. 2 is a block diagram of an example method for defining a simulateddeformation of a 3D object data model, in accordance with embodimentsdescribed herein.

FIGS. 3A-B illustrate an example of defining a simulated deformation ofa 3D object data model (3A) and an example of a force model for a 3Dobject data model with one constraint point (3B), in accordance withembodiments described herein.

FIGS. 4A-B illustrate an example of defining a simulated deformation ofa 3D object data model (4A) and an example of a force model for a 3Dobject data model with two constraint points (4B), in accordance withembodiments described herein.

FIG. 5 is a block diagram of an example 3D object data model database,in accordance with embodiments described herein.

FIG. 6 is a block diagram of an example server for generating asimulated deformation of a 3D object data model, in accordance withembodiments described herein.

FIG. 7 is a block diagram of an example method for generating asimulated deformation of a 3D object data model, in accordance withembodiments described herein.

FIGS. 8A-C illustrate an example web-application for generating adisplay (8A) and a simulated deformation (8B, 8C) of a 3D object datamodel, in accordance with embodiments described herein.

FIG. 9 is a schematic illustrating a conceptual partial view of anexample computer program product that includes a computer program forexecuting a computer process on a computing device, in accordance withembodiments described herein.

DETAILED DESCRIPTION

The following detailed description includes references to theaccompanying figures. In the figures, similar symbols typically identifysimilar components, unless context dictates otherwise. The exampleembodiments described in the detailed description, figures, and claimsare not meant to be limiting. Other embodiments may be utilized, andother changes may be made, without departing from the scope of thesubject matter presented herein. It will be readily understood that theaspects of the present disclosure, as generally described herein andillustrated in the figures can be arranged, substituted, combined,separated, and designed in a wide variety of different configurations,all of which are contemplated herein.

In some cases, it may be desirable to view how an object represented bya 3D object data model would be deformed (e.g., would move, would changeshape, etc.) when a force is applied to the object. To this end, it maybe desirable to define a simulated deformation of a 3D object datamodel. Further, it may be desirable to generate the simulateddeformation of the 3D object data model.

In order to define the simulated deformation of the 3D object datamodel, a force may be applied to an object, causing deformation of theobject and, while the object is deformed, a plurality of reference scansmay be captured of the object. Based on the reference scans, athree-dimensional (3D) object data model representing the object may begenerated. Further based on the reference scans, a constraint point ofthe 3D object data model may be identified. The constraint point mayrepresent a point substantially of minimum deformation (e.g., minimummovement, minimum shape change, etc.) of the object. A predefineddeformation model may then be selected for and associated with thecotraint point. The predefined deformation model may define thesimulated deformation. The simulated deformation may simulate at least aportion of the deformation of the object proximate to the pointsubstantially of minimum deformation. Information indicative of theforce, the constraint point, and the predefined deformation model may bestored together in a force model. The force model may be associated withthe 3D object data model in a 3D object data model database.

In order to generate the simulated deformation of the 3D object datamodel using the force, the force model may be accessed. The simulateddeformation of the 3D object data model may then be generated using thepredefined deformation model indicated in the force model.

FIGS. 1A and 1B illustrate an example three-dimensional (3D) scanningand digitization system, respectively, for defining a simulateddeformation of a 3D object data model, in accordance with embodimentsdescribed herein. In particular, as shown in FIG. 1A, an example 3Dscanning system 100 may be used to scan an object 102. While the object102 is shown to be a shirt, it will be understood that the object 102may take other forms as well.

For purposes of illustration, the 3D scanning system 100 is shown to beconfigured for a structured light illumination technique. However, itwill be understood that the 3D scanning system 100 may be configured forother 3D scanning techniques as well. As shown, the 3D scanning system100 includes a projector 104 and two cameras 106A, 106B. While oneprojector 104 and two cameras 106A, 106B are shown, more or fewerprojectors and cameras are possible as well. Further, while theprojector 104 and the cameras 106A, 106B are shown to be positioned inparticular locations in the 3D scanning system 100, other locations arepossible as well.

The projector 104 may be configured to project a pattern of structuredlight onto the object 102. The pattern may be, for example, a pattern ofparallel lines or a checkerboard. Other patterns are possible as well.The cameras 106A, 106B may be configured to detect reflections of thepattern of structured light off the object 102. To this end, the cameras106A, 106B may be, for example, monochrome stereo cameras. Other camerasare possible as well.

Because the object 102 has a non-uniform surface, the reflections of thepattern of structured light will be distorted. The non-uniform surfaceof the object 102 may be estimated from the distortions in thereflections of the pattern of structured light. The pattern ofstructured light may comprise, for example, infrared light, or light ofanother wavelength.

As shown, the 3D scanning system 100 further includes a platform 108that is configured to hold the object 102. While the platform 108 isshown to have a particular shape and size, other shapes and sizes arepossible as well. For example, in some embodiments the platform 108 maytake the form of a mannequin on which the object 102 is positioned.Other examples are possible as well. Further, while the platform 108 isshown to be located above the object 102, in other embodiments theplatform 108 may be located below, between, within, or otherwiserelative to the object 102. Further, while the object 102 is shown to behung from the platform 108, in other embodiments the object 102 may beon top of or over the platform 108 (e.g., in embodiments where theplatform 108 takes the form of a mannequin, the object 102 may be “worn”by the platform 108). Other configurations of the platform 108 and theobject 102 are possible as well. In some embodiments, no platform 108may be included in the 3D scanning system 100.

As shown, the 3D scanning system 100 still further includes a forcegenerator 110. The force generator 110 may be configured to apply aforce to the object 102 to cause a deformation of the object 102. Theforce and the deformation may each take a number of forms.

In some embodiments, the force may include a linear force. To this end,the force may take the form of, for example, pressurized air, a physicalmotion, such as a push, a bounce, or a slide, a physical compression, ora physical tension. Alternatively or additionally, in some embodiments,the force may include a centrifugal force. To this end, the force maytake the form of, for example, pressurized air or a physical motion,such as a spin, a shake, or a twist. The force may be a constant forceor may vary with time. Other forces are possible as well.

In any case, the force may cause a deformation of the object. In someembodiments the deformation may include, for example, a movement of theobject (e.g., a translation or rotation of the object) or a portionthereof. Alternatively or additionally, in some embodiments, thedeformation may include a change in the shape of the object (e.g., anangulation or warp of the object) or a portion thereof. In someembodiments, the force may be selected to cause a deformation that iscommon for a particular object. For example, for a shirt, thedeformation may be flowing on a moving torso or blowing in the wind.Other examples include crushing of a plastic cup, flexing of a shoe by ahuman foot, stretching of headphones over a human head, squishing of amattress by a human body, and so on. The deformation may be constant ormay vary with time. Other deformations are possible as well.

The force generator 110 may also take a number of forms. In someembodiments, including that shown in FIG. 1A, the force generator 110may be positioned in the 3D scanning system 100 to apply a force to theobject 102. While the force generator 110 is shown to be positionedbelow and to the right of the object 102, the force generator 110 may bepositioned elsewhere in the 3D scanning system 100 as well. For example,the force generator 110 may be positioned directly below the object 102.In embodiments where the object 102 is a shirt, this may allow the forcegenerator 110 to apply the force up into the object 102. Other examplesare possible as well. In some embodiments, the position of the forcegenerator 110 may be modified while the force is applied. Further, whilethe force generator 110 is shown to be positioned at a distance from theobject 102, in some embodiments the force generator 110 may be incontact with (or may come into contact with) the object 102.

While the force generator 110 is shown as a pressurized air generator,the force generator 110 may take other forms, such as an actuator oractuators configured to apply a physical motion (e.g., a push, a bounce,a slide, spin, a shake, or a twist), a physical compression, or aphysical tension to the object 102. Further, while the force generator110 is shown to be separate from the platform 108, the force generator110 may be included in the platform 108, such that the platform 108 isconfigured to apply a force to the object 102. Alternatively, in someembodiments, no force generator 110 may be included, and the force maybe applied by a user (not shown) of the 3D scanning system 100. Otherforces and force generators are possible as well.

While the force is applied to the object 102, causing a deformation ofthe object 102, a plurality of reference scans may be captured. To thisend, the projector 104 may project the pattern of structured light ontothe object 102 and the cameras 106A, 106B may detect reflections of thepattern of structured light off the object 102, as described above. Thereference scans may be determined based on the reflections of thepattern of structured light.

In some embodiments, the plurality of reference scans may include atleast one reference scan captured before the force is applied to theobject 102 and at least one reference scan after the force is applied tothe object 102. That is, the plurality of reference scans may include atleast one reference scan of the object 102 before it is deformed and atleast one reference scan of the object 102 while the object 102 is beingdeformed and/or after the object 102 has been deformed. In this manner,the plurality of reference scans may capture a continuous (e.g., asopposed to an instant) deformation of the object 102 caused by theapplied force.

The 3D scanning system 100 may alternatively or additionally includeelements other than those shown.

The plurality of reference scans may be used to determine 3D scanningdata representing the object 102. The 3D scanning data may then be usedto generated a 3D object data model representing the object 102 may begenerated. The generation of the 3D object data model may be referred toas 3D digitization.

In some embodiments, the 3D scanning system 100 may be configured togenerate the 3D object data model using the 3D scanning data, such thatthe 3D scanning system 100 also includes a 3D digitization system.Alternatively, the 3D scanning system 100 may be configured to transmitthe 3D scanning data to a separate 3D digitization system for generationof the 3D object data model representing the object 102. The 3Ddigitization system may, for example, take the form of the 3Ddigitization system shown in FIG. 1B.

FIG. 1B shows a block diagram of an example 3D digitization system 112for defining a simulated deformation of a 3D object data model. The 3Ddigitization system 112 may be integrated with or communicativelycoupled to the 3D scanning system 100 shown in FIG. 1A. Further, the 3Ddigitization system 112 may be co-located with or remote from the 3Dscanning system 100 shown in FIG. 1A. The 3D digitization system 112 maytake the form of a computing device, such as a personal computer, tabletcomputer, or server. The 3D digitization system 112 may take other formsas well.

As shown, the 3D digitization system 112 includes an input 114, anobject data model processor 116, a model builder 118, a view and shapeimage index 120, a processor 122, and an object data model database 124,all of which may be communicatively linked together by a system bus,network, and/or other connection mechanism 126.

The input 114 may be configured to wirelessly communicate with a 3Dscanning system, such as the 3D scanning system 100 described above. Inparticular, the input 114 may be configured to receive from the 3Dscanning system 100 3D scanning data of an object collected by the 3Dscanning system. The 3D scanning system 100 may be operated by the sameentity (e.g., vendor or manufacturer) as the 3D digitization system 112,or may be operated by a separate entity. In embodiments where the 3Ddigitization system 112 is integrated with the 3D scanning system 100,the input 114 may be omitted.

The input 114 may include an antenna and a chipset for communicatingwith the 3D scanning system over an air interface. The chipset or input114 in general may be arranged to communicate according to one or moreother types of wireless communication (e.g. protocols) such asBluetooth, communication protocols described in IEEE 802.11 (includingany IEEE 802.11 revisions), cellular technology (such as GSM, CDMA,UMTS, EV-DO, WiMAX, or LTE), or Zigbee, among other possibilities. Insome embodiments, the input 114 may also be configured to wirelesslycommunicate with one or more other devices and systems, such as aserver, a database, and/or other systems.

The object data model processor 116 may be configured to generate a meshusing the 3D scanning data received from the 3D scanning system. Themesh may be, for example, a triangulated or other polygonal mesh. Insome embodiments, prior to generating the mesh, the object data modelprocessor 116 may decimate the 3D scanning data (e.g., from 5 million to120,000 surfaces) utilizing texture-preserving decimation. This mayallow the object data model processor 116 to reduce a file size of themesh. The object data model processor 116 may generate the mesh in othermanners as well.

The model builder 112 may be configured to generate a 3D object datamodel representing the object using the mesh generated by the objectdata model processor 116. Alternatively, in some embodiments the modelbuilder 112 may generate the 3D object data model representing theobject using the 3D scanning data received from the 3D scanning system.In these embodiments, the 3D scanning data received from the 3D scanningsystem may include a data set defining a mesh image of the object, andthe model builder 118 may use the data set defining the mesh image alongwith the 3D scanning data to generate the 3D object data modelrepresenting the object. The model builder 112 may generate the 3Dobject data model representing the object in other manners as well.

In some embodiments, the 3D digitization system 112 may receive 3Dscanning data corresponding to multiple views of the same object. Inthese embodiments, the object data model processor 116 may be configuredto generate meshes of the object from each of the multiple views. Theview and shape image index 120 may be configured to index the meshes ofthe object from each of the multiple views.

The processor 122 may comprise one or more general-purpose processorsand/or one or more special-purpose processors. To the extent theprocessor 122 includes more than one processor, such processors couldwork separately or in combination.

Data storage 128, in turn, may comprise one or more volatile and/or oneor more non-volatile storage components, such as optical, magnetic,and/or organic storage, and data storage 128 may be integrated in wholeor in part with the processor 122. As shown, data storage 128 maycontain instructions 130 (e.g., program logic) executable by theprocessor 122 to execute various system functions. In particular, theinstructions 130 may be executable by the processor 122 to determinesimulated deformation of the 3D object data model.

To this end, the instructions 130 may be executable by the processor 122to identify, based on the plurality of reference scans, a constraintpoint of the 3D object data model. The constraint point may represent apoint substantially of minimum deformation of the object represented bythe 3D object data model. Further, the instructions 130 may beexecutable by the processor 122 to associate a predefined deformationmodel with the constraint point (e.g., by selecting the predefineddeformation model from a plurality of predefined deformation modelsstored in the data storage 128 and/or otherwise accessible by the 3Ddigitization system 112). The predefined deformation model may, forexample, be predefined by deforming an object while obtaining referencescans of the object, as described above, and determining the predefineddeformation model based on the reference scans. Further, the predefineddeformation model may define a simulated deformation. The simulateddeformation may simulate at least a portion of the deformation of theobject proximate to the point substantially of minimum deformation.Still further, the instructions 130 may be executable by the processor122 to generate a force model for the 3D object data model. The forcemodel may comprise information indicative of the force applied to theobject, information indicative of the constraint point, and informationindicative of the predefined deformation model associated with theconstraint point. The force model may be stored with other force models132 in the 3D object data model database 124.

The realities of modern devices and the methods of their production arenot absolutes, but rather statistical efforts to produce a desireddevice and/or result. Even with the utmost of attention being paid torepeatability of processes, operation of manufacturing facilities, thenature of starting and processing materials, and so forth, variationsand imperfections result. Accordingly, no limitation in the descriptionof the present disclosure or its claims can or should be read asabsolute. To further highlight this, the term “substantially” mayoccasionally be used herein. While as difficult to precisely define asthe limitations of the present disclosure themselves, we intend thatthis term be interpreted as “to a large extent”, “as nearly aspracticable”, “within technical limitations”, and the like.

The 3D object data model database 124 may include a number of 3D objectdata models generated by the model builder 118. For each 3D object datamodel, the 3D object data model database 124 may additionally store the3D scanning data, mesh, and/or data set defining the mesh used togenerate the 3D object data model. In embodiments where the 3Ddigitization system 112 receives 3D scanning data corresponding tomultiple views of the same object, and the object data model processor116 generates meshes of the object from each of the multiple views, themeshes may be indexed in the 3D object data model database 124, asdescribed above.

For each 3D object data model, the 3D object data model database 124 mayadditionally include one or more force models 132 determined by theinstructions 130, as described above. Each force model 132 may includeinformation indicative of a force applied to the object represented bythe 3D object data model, information indicative of a constraint pointof the 3D object data model, and information indicative of a predefineddeformation model associated with the constraint point.

In some embodiments, one or more of the object data model processor 116,the model builder 118, the view and shape image index 120, and theinstructions 130 may be included in the 3D scanning system (e.g., the 3Dscanning system 100 shown in FIG. 1A) rather than in the 3D digitizationsystem 112. In these embodiments, the functionality of these elements(e.g., decimating the 3D scanning data, generating meshes, generating 3Dobject data models, indexing meshes, identifying constraint points,associating predefined deformation models with constraint points, andgenerating force models) may be carried out at the 3D scanning system(e.g., the 3D scanning system 100 shown in FIG. 1A) rather than in the3D digitization system 112.

The 3D digitization system 112 may alternatively or additionally includeelements other than those shown.

FIG. 2 is a block diagram of an example method for defining a simulateddeformation of a 3D object data model, in accordance with embodimentsdescribed herein. Method 200 shown in FIG. 2 presents an embodiment of amethod that, for example, could be used with the systems describedherein, such as the 3D scanning system 100 described above in connectionwith FIG. 1A and/or the 3D digitization system 112 described above inconnection with FIG. 1B. The blocks 202-210 of method 200 may beperformed by a single system or by multiple systems. For example, one ormore of blocks 202-210 may be performed by a 3D scanning system, such asthe 3D scanning system 100 described above in connection with FIG. 1A,while others of blocks 202-210 may be performed by a 3D digitizationsystem, such as the 3D digitization system 112 described above inconnection with FIG. 1B. As another example, all of the blocks 202-210may be performed by a 3D scanning and digitization system. Otherexamples are possible as well.

Method 200 may include one or more operations, functions, or actions asillustrated by one or more of blocks 202-210. Although the blocks areillustrated in a sequential order, these blocks may also be performed inparallel, and/or in a different order than those described herein. Also,the various blocks may be combined into fewer blocks, divided intoadditional blocks, and/or removed based upon the desired implementation.

In addition, for the method 200 and other processes and methodsdisclosed herein, the flowchart shows functionality and operation of onepossible implementation of present embodiments. In this regard, eachblock may represent a module, a segment, or a portion of program code,which includes one or more instructions executable by a processor forimplementing specific logical functions or steps in the process. Theprogram code may be stored on any type of computer-readable medium, suchas, for example, a storage device including a disk or hard drive. Thecomputer-readable medium may include a non-transitory computer-readablemedium, for example, such as computer-readable media that store data forshort periods of time like register memory, processor cache, and RandomAccess Memory (RAM). The computer-readable medium may also includenon-transitory media, such as secondary or persistent long term storage,like read only memory (ROM), optical or magnetic disks, and compact-discread only memory (CD-ROM), for example. The computer-readable media mayalso be any other volatile or non-volatile storage systems. Thecomputer-readable medium may be considered a computer-readable storagemedium, a tangible storage device, or other article of manufacture, forexample.

In addition, for the method 200 and other processes and methodsdisclosed herein, each block may represent circuitry that is configuredto perform the specific logical functions in the process.

The method 200 begins at block 202 where a system causes a force to beapplied to an object, thereby causing a deformation of the object. Theforce may take any of the forms described above. Similarly, thedeformation may take any of the forms described above. The system maycause the force using, for example, a force generator or a platform, asdescribed above. Alternatively, the force may be applied by a user ofthe system. The system may further generate instructions to be providedto a force generator to cause or instruct the force to be applied. Theforce may be applied in other manners as well.

The method 200 continues at block 204 where, during the deformation ofthe object, the system causes a plurality of reference scans of theobject to be captured. The system may generate instructions to beprovided to an image-capture device to cause or instruct theimage-capture device to capture the scans. The system may capture thereference scans using a number of 3D scanning and digitizationtechniques, including, for example, structured light illuminationtechniques, x-ray, ultrasound, and magnetic resonance stimulustechniques, and video processing techniques. Other 3D scanning anddigitization techniques are possible as well.

In some embodiments, the plurality of reference scans may include atleast one reference scan captured before the force is applied to theobject and at least one reference scan after the force is applied to theobject. That is, the plurality of reference scans may include at leastone reference scan of the object before it is deformed and at least onereference scan of the object while the object is being deformed and/orafter the object has been deformed. In this manner, the plurality ofreference scans may capture a continuous (e.g., as opposed to aninstant) deformation of the object caused by the applied force.

The method 200 continues at block 206 where, based on the plurality ofreference scans, the system determines a 3D object data modelrepresenting the object. The system may determine the 3D object datamodel by, for example, generating the 3D object data model using anumber of 3D scanning and digitization techniques, including thosedescribed above. The 3D object data model may be generated, for example,by combining scans of the object. Alternatively, the system maydetermine the 3D object data model by, for example, querying a 3D objectdata model database and receiving the 3D object data model from the 3Dobject data model database. The system may determine the 3D object datamodel in other manners as well.

The method 200 continues at block 208 where, further based on theplurality of reference scans, the system identifies a constraint pointof the 3D object data model. The constraint point may represent a pointsubstantially of minimum deformation of the object. The constraint pointmay be identified in a number of manners. For example, the system maydetermine an “optical flow” of the object, which may be understood torefer to an apparent movement of the object resulting from thedeformation of the object. As the object is deformed, the apparentmovement of the point substantially of minimum deformation will besignificantly less than the apparent movement elsewhere on the object.Therefore, the optical-flow vectors in the area of the pointsubstantially of minimum deformation will, on average, have a lessermagnitude than optical-flow vectors elsewhere on the object, thuscreating an optical-flow differential in the area that includes thepoint substantially of minimum deformation. The constraint point maythen be determined to be a point on the 3D object data model thatrepresents the point substantially of minimum deformation on the object.Other examples are possible as well.

At block 210, the system associates a predefined deformation model withthe constraint point. The predefined deformation model may, for example,be predefined by deforming an object while obtaining reference scans ofthe object, as described above, and determining the predefineddeformation model based on the reference scans. Further, the predefineddeformation model may define a simulated deformation. The simulateddeformation may simulate at least a portion of the deformation proximateto the point substantially of minimum deformation. The predefineddeformation model may take a number of forms. For example, thepredefined deformation model may take the form of one or more equationsdefining deformation of the 3D object data model. The predefineddeformation model may take the constraint point as an input variableand/or may be centered at the constraint point. Other examples arepossible as well.

The predefined deformation model may be selected from a plurality ofpredefined deformation models stored at or otherwise accessible to thesystem. For example, the system may select as the predefined deformationmodel the predefined deformation model that defines a simulateddeformation of the object that best approximates the deformation of theobject. In some embodiments, the simulated deformation defined by thepredefined deformation model may exactly, almost exactly, or closelysimulate the deformation of the object. In other embodiments, thesimulated deformation defined by the predefined deformation model may besimplified as compared to the deformation of the object, such that thesimulated deformation defined by the predefined deformation model mayonly approximately simulate the deformation of the object. The simulateddeformation of such a simplified predefined deformation model mayapproximate have a reduced file size. Other examples are possible aswell.

In some embodiments, the system may further generate a force model forthe 3D object data model. The force model may include informationindicative of the force applied to the object, the constraint point, andthe predefined deformation model associated with the constraint point.The system may store the force model in a database, such as the 3Dobject data model database 124 described above in connection with FIG.1B.

While the method 200 described identifying only one constraint point, insome embodiments, more than one constraint point may be identified. Inthese embodiments, a predefined deformation model may be selected foreach of the identified constraint points. The selected predefineddeformation models may be the same or different for different constraintpoints. Further, in these embodiments, the system may generate forcemodels for each of the identified constraint points. Each force modelmay include the force applied to the object, the identified constraintpoint, and the predefined deformation model selected for the identifiedconstraint point. Each of the force models may be stored in a database,such as the 3D object data model database 124 described above inconnection with FIG. 1B.

FIGS. 3A-B illustrate an example of defining a simulated deformation ofa 3D object data model (3A) and an example of a force model for a 3Dobject data model with one constraint point (3B), in accordance withembodiments described herein. As shown in FIG. 3A, a 3D scanning anddigitization system 300 includes an object 302. While the object 302 isshown as a shirt, other objects are possible as well.

The 3D scanning and digitization system 300 may be used to define asimulated deformation of a 3D object data model representing the object302. For example, the 3D scanning and digitization system 300 may beused to define a simulated deformation of the 3D object data modelsimulating the deformation of the object 302 that results from apressurized air force of the wind on the object 302 while the object 302is worn by a wearer.

To this end, a force generator 304 may apply a force to the object 302,causing a deformation 306 of the object 302. The force may be, forexample, pressurized air. While the force generator 304 is shown to bepositioned on the bottom right of the object 302, the force generator304 may be otherwise positioned relative to the object 302. For example,the force generator 304 may be positioned directly below the object 302.In embodiments where the object 302 is a shirt, such positioning of theforce generator 304 directly below the object 302 may allow the forcegenerator 304 to apply pressurized air up into the object 302 (e.g., toblow wind up into the shirt), thereby causing a deformation of theobject 302. Other examples are possible as well.

While the object 302 is being deformed, a projector 308 may be used toproject a structured light pattern onto the object 302, and cameras310A, 310B may be used to detect reflections of the structured lightpattern off the object 302, as described above. Based on the detectedreflections, the system 300 may capture a plurality of reference scansof the object 302.

Based on the reference scans, the system 300 may generate a 3D objectdata model of the object 302, as described above. Further based on thereference scans, the system 300 may identify a constraint point on the3D object data model. The constraint point may represent a point 312substantially of minimum deformation of the object 302, as describedabove. The system 300 may then associate a predefined deformation modelwith the constraint point, as described above.

Once the system 300 has generated the 3D object data model, identifiedthe constraint point, and the associated the predefined deformationmodel with the constraint point, the system 300 may generate a forcemodel for the 3D object data model, as described above. An example forcemodel 314 is shown in FIG. 3B.

As shown, the force model 314 includes information indicative of theforce 316, information indicative of the identified constraint point318, and information indicative of the predefined deformation model 320.While the information indicative of the force 316 is shown in the unitm/s² with the qualitative description “wind bottom right,” other units(e.g., metric units, U.S. units, etc.) of the force and/or otherindications of the force (e.g., alphanumeric, numeric, etc.) arepossible as well. Further, while the information indicative of theconstraint point 318 is shown in 3D coordinates (e.g., x,y,z) indicatinga location of the constraint point on the 3D object data model, othercoordinate systems or other indications of a location on the 3D objectdata model are possible as well. Still further, while the informationindicative of the predefined deformation model 320 is shown with aparticular indication, other indications, file names, and/or equationsare possible as well.

FIGS. 4A-B illustrate an example of deforming an object during scanning(4A) and an example of a force model for a 3D object data model with twoconstraint points (4B), in accordance with embodiments described herein.As shown in FIG. 4A, a 3D scanning and digitization system 400 includesan object 402. While the object 402 is shown as a shirt, other objectsare possible as well.

The 3D scanning and digitization system 400 may be used to define asimulated deformation of a 3D object data model representing the object402. For example, the 3D scanning and digitization system 400 may beused to define a simulated deformation of the 3D object data modelsimulating the deformation of the object 402 that results from aphysical motion force on the object 302 as a wearer of the object 302runs.

To this end, a platform 404 applies a physical motion force to theobject 402 by sliding the object 402, as indicated by the arrow 406. Theforce causes a deformation 408 of the object 402. While the object 402is being deformed, a projector 410 may be used to project a structuredlight pattern onto the object 402, and cameras 412A, 412B may be used todetect reflections of the structured light pattern off the object 402,as described above. Based on the detected reflections, the system 400may capture a plurality of reference scans of the object 402.

Based on the reference scans, the system 400 may generate a 3D objectdata model of the object 402, as described above. Further based on thereference scans, the system 400 may identify two constraint points onthe 3D object data model. In particular, the system 400 may identify afirst constraint point that represents a first point 414A substantiallyof minimum deformation of the object 402, as described above. Further,the system 400 may identify a second constraint point that represents asecond point 414B substantially of minimum deformation of the object402, as described above.

The system 400 may then associate a predefined deformation model witheach of the constraint points, as described above. That is, the system400 may associate a first predefined deformation model with the firstconstraint point and a second predefined deformation model with thesecond constraint point. The first predefined deformation model may bethe same as or different than the second predefined deformation model.

Once the system 400 has generated the 3D object data model, identifiedthe two constraint points and associated a predefined deformation modelwith each of the two constraint points, the system may generate a firstforce model for the first constraint point and a second force model forthe second constraint point. Example force models 414, 422 are shown inFIG. 3B.

As shown, the first force model 414 includes information indicative ofthe force 416 applied to the object 402, information indicative of thefirst constraint point 418, and information indicative of the firstpredefined deformation model 420. Similarly, the second force model 422includes information indicative of the force 416 applied to the object402, information indicative of the second constraint point 424, andinformation indicative of the second predefined deformation model 426.Each of the information indicative of the force 416, informationindicative of the first constraint point 418, information indicative ofthe first predefined deformation model 420, information indicative ofthe second constraint point 424, and information indicative of thesecond predefined deformation model 426 may take any of the formsdescribed above.

In general, a force model may be generated for each constraint pointidentified on a 3D object data model when a force is applied to theobject represented by the 3D object data model. For example, as only oneconstraint point was identified in the example shown in FIG. 3A, onlyone force model was generated, as shown in FIG. 3B. As another example,two constraint points were identified in the example shown in FIG. 4A,such that two force models were generated, as shown in FIG. 3B. Moreconstraint points and force models are possible as well.

Force models, such as the force model 314, the first force model 414,and the second force model 422, may be stored in a database, such as the3D object data model database described above. FIG. 5 shows a blockdiagram of an example 3D object data model database 500, in accordancewith some embodiments.

The 3D object database 500 may include 3D object data modelsrepresenting a number of objects. One or more 3D object data models mayrepresent the same object. For example, as shown, a first 3D object datamodel 504A, a second 3D object data model 504B, and a third 3D objectdata model 504C each represent the object 502. For purposes ofillustration, the object 502 may be a tee-shirt similar to the object302 described above in connection with FIGS. 3A-B and the object 402described above in connection with FIGS. 4A-B.

Each of the first 3D object data model 504A, the second 3D object datamodel 504B, and the third 3D object data model 504C may have beengenerated by a 3D scanning and digitization system, such as the 3Dscanning system 100 described above in connection with FIG. 1A and/orthe 3D digitization system 112 described above in connection with FIG.1B. For example, the first object data model 504A may have beengenerated by scanning the object 502 and generating the object datamodel 504A representing the object 502. No force may have been appliedduring the scanning. Similarly, the second object data model 504B mayhave been generated by applying a first force to the object 502,scanning the object 502, and generating the object data model 504Brepresenting the object 502. The first force may have been, for example,a 0.001 m/s² wind force applied from the bottom right of the object 502.Similarly, the third object data model 504C may have generated byapplying a second force to the object 502, scanning the object 502, andgenerating the third object data model 504C representing the object 502.The second force may have been, for example, a 0.4N slide to the left ofthe object 502.

As shown, no force models are be associated with the first 3D objectdata model 504A. This is because no force was applied to the object 502to generate the first 3D object data model 504A.

On the other hand, a force model 506A is associated with the second 3Dobject data model 504B. The force model 506A may, for example, besimilar to the force model 314 shown in FIG. 3B. In particular, thefirst force model 506A may include information indicative of the forceapplied by the force generator (a 0.001 m/s² wind force applied from thebottom right of the object), information indicative of the constraintpoint (25, 133, 31), and information indicative of the predefineddeformation model associated with the constraint point(DeformationModel_11).

Similarly, two force models 506B, 506C are associated with the third 3Dobject data model 504B. The force models 506B, 506C may, for example, besimilar to the first and second force models 414, 422, respectively,shown in FIG. 4B. In particular, the force model 506B may includeinformation indicative of the force applied by the platform (a 0.4Nslide force to the left), information indicative of the first constraintpoint (28, 121,43), and information indicative of the first predefineddeformation model associated with the first constraint point(DeformationModel_164). Similarly, the force model 506C may includeinformation indicative of the force applied by the platform (a 0.4Nslide force to the left), information indicative of the secondconstraint point (79, 74, 22), and information indicative of the secondpredefined deformation model associated with the second constraint point(DeformationModel_2).

While there are shown to be three 3D object data models 504A, 504B, 504Crepresenting the object 502, in some embodiments there may be more orfewer three 3D object data models representing object 502, or any of theobjects represented in the 3D object data model database. Further, whilethe 3D object data models 504A, 504B, and 504C are shown to beassociated with zero, one, and two force models, respectively, in someembodiments the 3D object data models 504A, 504B, and 504C may beassociated with more or fewer force models. Other configurations of the3D object data model database 500 are possible as well.

FIG. 6 is a block diagram of an example server for generating asimulated deformation of a 3D object data model, in accordance withembodiments described herein. The server 600 shown in FIG. 6 may be acomputer-based system and may be integrated with or communicativelycoupled to one or both of a 3D scanning system, such as the 3D scanningsystem 100 described above in connection with FIG. 1A, and a 3Ddigitization system, such as the 3D digitization system 112 describedabove in connection with FIG. 1B. Further, the server 600 may beco-located with or remote from one or both of a 3D scanning system, suchas the 3D scanning system 100 described above in connection with FIG.1A, and a 3D digitization system, such as the 3D digitization system 112described above in connection with FIG. 1B.

As shown in FIG. 6, the server 600 for generating a simulateddeformation of a 3D object data model may include a web-based interface602, a 3D object data model database 604, and a processor 606, all ofwhich may be communicatively linked together by a system bus, network,and/or other connection mechanism 608.

The web-based interface 602 may be configured to receive a request togenerate a simulated deformation of a 3D object data model. Further, insome embodiments, the web-based interface 602 may be configured toreceive a request to generate a display of the 3D object data model. Tothis end, the web-based interface 602 may be configured to provide aweb-based application. The web-based application may be accessible byany number of computing devices including, for example, a personalcomputer, a laptop computer, a tablet computer, and/or a smartphone.Other computing devices are possible as well. In some embodiments, auser of such a computing device may access the web-based application byentering a website address into a web browser and/or running a softwareapplication on the computing device. Further, the user of such acomputing device may transmit to the server 600 the request to generatethe simulated deformation of a 3D object data model and the request byinteracting with and/or selecting one or more features in the web-basedapplication. In some embodiments, the user of such a computing devicemay additionally transmit to the server 600 the request to generate thedisplay of the 3D object data model. Still further, the user of such acomputing device may receive the simulated deformation of the 3D objectdata model through the web-based application, such that the simulateddeformation of the 3D object data model may be displayed in the webbrowser or in the software application on the computing device. In someembodiments, the user of such a computing device may additionallyreceive the display of the 3D object data model through the web-basedapplication, such that the display of the 3D object data model may bedisplayed in the web browser or in the software application on thecomputing device. The web-based application may be accessible in othermanners as well.

The web-based interface 602 may be arranged to communicate according toone or more other types of wireless communication (e.g. protocols) suchas Bluetooth, communication protocols described in IEEE 802.11(including any IEEE 802.11 revisions), cellular technology (such as GSM,CDMA, UMTS, EV-DO, WiMAX, or LTE), or Zigbee, among other possibilities.

The 3D object data model database 604 may take any of the formsdescribed for the 3D object model database 500 described above inconnection with FIG. 5. In embodiments where the server 600 isintegrated with a 3D digitization system, such as the 3D digitizationsystem 112 shown in FIG. 1B, the 3D object data model database 604 maybe integrated with the 3D object model database 124 shown in FIG. 1B.Alternatively, in embodiments where the server 600 is communicativelycoupled to a 3D digitization system, such as the 3D digitization system112 shown in FIG. 1B, the server 600 may not include the 3D object datamodel database 604 and may instead access the 3D object data modeldatabase 124 at the 3D digitization system 112. Still alternatively, inembodiments where the server 600 is communicatively coupled to a 3Ddigitization system, such as the 3D digitization system 112 shown inFIG. 1B, the 3D object model database 604 may be a copy of the 3D objectdata model database 124 or may include different 3D object data modelsthan the 3D object data model database 124. The 3D object data modeldatabase 604 may take other forms as well.

The processor 606 may comprise one or more general-purpose processorsand/or one or more special-purpose processors. To the extent theprocessor 606 includes more than one processor, such processors couldwork separately or in combination.

Data storage 612, in turn, may comprise one or more volatile and/or oneor more non-volatile storage components, such as optical, magnetic,and/or organic storage, and data storage 612 may be integrated in wholeor in part with the processor 606. As shown, data storage 612 maycontain instructions 614 (e.g., program logic) executable by theprocessor 606 to execute various server functions. In particular, theinstructions 614 may be executable by the processor 606 to generate asimulated deformation of a 3D object data model.

To this end, the instructions 614 may be executable by the processor 606to receive, via the web-based interface 602, a request to generate asimulated deformation of a given 3D object data model in the database of3D object data models using a given force. The instructions 614 may befurther executable by the processor 606 to, in response to receiving therequest to generate the simulated deformation of the given 3D objectdata model using the given force, select from force models 610 at leastone force model that includes information indicative of the given force.The instructions 614 may be still further executable by the processor606 to generate, via the web-based interface 602, the simulateddeformation of the 3D object data model using the selected force model.

In some embodiments, the instructions 614 may be further executable togenerate a display of the given 3D object data model. In theseembodiments, the display may be generated via the web-based interface.For example, the display may be generated in a web browser, softwareapplication, or other web-based application using WebGL or OpenGL. Otherexamples are possible as well. Further, in these embodiments, thedisplay may be generated in response to receiving a request to displaythe given 3D object data model, such as the request described above. Therequest may be received via the web-based interface 602 and may, forexample, be a search query, such as a text- and/or image-based search.The server 600 may receive the request in other manners as well.

The server 600 may include other elements instead of or in addition tothose shown.

FIG. 7 is a block diagram of an example method for generating asimulated deformation of a 3D object data model, in accordance withembodiments described herein. The method 700 may take any of the formsdescribed for the method 200 described above in connection with FIG. 2.

As shown, the method 700 begins at block 702 where a server provides adatabase of 3D object data models. The database may be similar to, forexample, the 3D object data model database 500 described above inconnection with FIG. 5.

At block 704, the server maintains, for each of the 3D object datamodels in the database, one or more force models. The force models maybe similar to, for example, the force model 314 described above inconnection with FIG. 3B and/or the force models 414, 422 described abovein connection with FIG. 4B. To this end, each of the force models mayinclude information indicative of a force, a constraint point on the 3Dobject data model, and a predefined deformation model for the constraintpoint. The predefined deformation model may define simulated deformationof the 3D object data model proximate to the constraint point.

The method 700 continues at block 706 where the server receives arequest to generate a simulated deformation of a given 3D object datamodel using a give force. The request may be received through, forexample, a web-based interface and/or a web-based application, such asthe web-based interface 602 described above in connection with FIG. 6.The request may be received in other manners as well.

At block 708, the server selects from the one or more force models forthe given 3D object data model at least one force model that comprisesinformation indicative of the given force. For example, if only oneforce model for the given 3D object data model include the given force(meaning only one constraint point was identified on the 3D object datamodel when the force models for the given force were generated, asdescribed above), the server may select only one force model. As anotherexample, if two force models for the given 3D object data model includethe given force (meaning two constraint points were identified on the 3Dobject data model when the force models for the given force weregenerated, as described above), the server may select two force models.The server may select more than two force models as well.

At block 710, the server generates the simulated deformation of thegiven 3D object data model. The server may generate the simulateddeformation of the given 3D object data model using the at least oneselected force model. The server may generate the simulated deformationof the given 3D object data model in a number of manners.

In embodiments where the at least one selected force model comprisesonly one selected force model, generating the simulated deformation mayinvolve simulating a deformation of the given 3D object data model basedon the predefined deformation model in the selected force model. Thatis, the simulated deformation may be defined by the predefineddeformation model. To this end, the simulated deformation may, forexample, take the constraint point as an input variable and/or becentered at the constraint point indicated in the selected force model.

In embodiments where the at least one selected force model comprises twoforce models, such as a first selected force model and a second selectedforce model, generating the simulated deformation may involve simulatinga deformation of the given 3D object data model based on a firstpredefined deformation model in the first selected force model and asecond predefined deformation model in the second selected force model.That is, the simulated deformation may be defined by the firstpredefined deformation model and the second predefined deformationmodel. To this end, a portion of the simulated deformation may, forexample, take the first constraint point as an input variable and/or becentered at a first constraint point indicated in the first selectedforce model. Further, another portion of the simulated deformation may,for example, take the first constraint point as an input variable and/orbe centered at a second constraint point indicated in the secondselected force model.

The simulated deformation may be similarly generated when the at leastone selected force model comprises more than two force models.

The server may generate the display of the animation in other manners aswell.

FIGS. 8A-C illustrate an example web-application for generating adisplay (8A) and a simulated deformation (8B, 8C) of a 3D object datamodel, in accordance with embodiments described herein. As shown in FIG.8A, a user has entered a website address into a browser in order toaccess a web-based application 800 provided by a server, such as theserver 600 described above in connection with FIG. 6. In otherembodiments, the user may instead run a software application on acomputing device in order to access the web-based application 800. Theweb-based application 800 may be accessible in other manners as well.

Once the user has accessed the web-based application, the user may inputa request to generate a display of a 3D object data model 802. To thisend, the user may, for example, input a search query, such as a text-and/or image-based query. Other search queries are possible as well.

In response to receiving the request to display the 3D object data model802, the server may generate a display of the 3D object data model 802.To this end, the server may select the 3D object data model 802 from a3D object data model database stored at or otherwise accessible to theserver, such as the 3D object data model database 500 described above inconnection with FIG. 5, and may provide the display of the 3D objectdata model via the web-based application 800. In some embodiments, theuser may manipulate and/or otherwise interact with the 3D object datamodel 802 via the web-based application 800. For example, the user mayrotate the 3D object data model 802 and/or zoom in on the 3D object datamodel 802. Other examples are possible as well.

FIGS. 8B-C illustrate an example web-based application 804 forgenerating a simulated deformation of the 3D object data model 802. Asshown in FIG. 8B, the web-based application 800 may include indicationsof a number of forces 806 that may be applied to the 3D object datamodel 802. The forces 806 may correspond to forces indicated in forcemodels associated with the 3D object data model 802.

As shown in FIG. 8C, the user may select one of the displayed forces.The server may receive via the web-based application 800 the selectionof the selected force 808. In some embodiments, the server may interpretthe selection of the selected force 808 as a request to generate asimulated deformation of the 3D object data model 802 using the selectedforce 808.

Accordingly, in response to receiving the selection of the selectedforce 808, the server may generate the simulated deformation of the 3Dobject data model. To this end, the server may select at least one forcemodel that includes an indication of the selected force 808 and maygenerate the simulated deformation based on the predefined deformationmodels and constraint points indicated in the force models, as describedabove.

In some embodiments, the disclosed methods may be implemented ascomputer program instructions encoded on a non-transitorycomputer-readable storage media in a machine-readable format, or onother non-transitory media or articles of manufacture. FIG. 9 is aschematic illustrating a conceptual partial view of an example computerprogram product 900 that includes a computer program for executing acomputer process on a computing device, in accordance with embodimentsdescribed herein.

In one embodiment, the example computer program product 900 is providedusing a signal bearing medium 902. The signal bearing medium 902 mayinclude one or more programming instructions 904 that, when executed byone or more processors may provide functionality or portions of thefunctionality described above in connection with FIGS. 1A-8C. In someexamples, the signal bearing medium 902 may encompass acomputer-readable medium 906, such as, but not limited to, a hard diskdrive, a Compact Disc (CD), a Digital Video Disk (DVD), a digital tape,memory, etc. Alternatively or additionally, in some implementations, thesignal bearing medium 902 may encompass a computer recordable medium908, such as, but not limited to, memory, read/write (R/W) CDs, R/WDVDs, etc. Still alternatively or additionally, in some implementations,the signal bearing medium 902 may encompass a communications medium 910,such as, but not limited to, a digital and/or an analog communicationmedium (e.g., a fiber optic cable, a waveguide, a wired communicationslink, a wireless communication link, etc.). Thus, for example, thesignal bearing medium 902 may be conveyed by a wireless form of thecommunications medium 910 (e.g., a wireless communications mediumconforming with the IEEE 802.11 standard or other transmissionprotocol).

The one or more programming instructions 904 may be, for example,computer executable and/or logic implemented instructions. In someexamples, a computing device including the computer program product 900may be configured to provide various operations, functions, or actionsin response to the programming instructions 904 conveyed to thecomputing device by one or more of the computer readable medium 906, thecomputer recordable medium 908, and/or the communications medium 910.

While various aspects and embodiments have been disclosed herein, otheraspects and embodiments will be apparent to those skilled in the art.The various aspects and embodiments disclosed herein are for purposes ofillustration and are not intended to be limiting, with the true scopebeing indicated by the following claims, along with the full scope ofequivalents to which such claims are entitled. It is also to beunderstood that the terminology used herein is for the purpose ofdescribing particular embodiments only, and is not intended to belimiting.

What is claimed is:
 1. A method for providing visualization ofdeformation of an object, the method comprising: causing, by one or morecomputing devices, a force to be applied to an object to cause adeformation of the object; during the deformation of the object,causing, by the one or more computing devices, a plurality of referencescans of the object to be captured; determining, by the one or morecomputing devices, a three-dimensional (3D) object data modelrepresenting the object, wherein the 3D object data model is determinedbased at least in part on the plurality of reference scans; identifying,by the one or more computing devices, a constraint point of the 3Dobject data model, wherein the constraint point represents a pointwithin a predetermined range of a point of minimum deformation of theobject; determining, by the one or more computing devices, a predefineddeformation model that defines a simulated deformation simulating atleast a portion of the deformation of the object based on the constraintpoint; receiving a request to generate a respective simulateddeformation of the object based on a particular force; selecting, from aplurality of force models, at least one force model for the object basedon the particular force, wherein a respective force model includesinformation indicative of a force, a constraint point on the 3D objectdata model, and reference to a deformation model for the constraintpoint of the object; and generating, by the one or more computingdevices, the respective simulated deformation of the object based on theselected force model, wherein the respective simulated deformationincludes a representation of a visualization of deformation of theobject.
 2. The method of claim 1, wherein the force comprises at leastone of a linear force or a centrifugal force.
 3. The method of claim 1,wherein the deformation of the object comprises one or more of atranslation of the object, a rotation of the object, an angulation ofthe object, and a warp of the object.
 4. The method of claim 1, furthercomprising: generating, by the one or more computing devices, theplurality of force models for the 3D object data model, wherein theplurality of force models comprise information indicative of the force,the constraint point, and the predefined deformation model selected forthe constraint point; and storing, by the one or more computing devices,the generated force models in a database.
 5. The method of claim 1,wherein the request to generate the simulated deformation indicates theparticular force and the 3D object data model.
 6. The method of claim 1,wherein generating the respective simulated deformation comprisessimulating deformation of the 3D object data model proximate to theconstraint point based on the predefined deformation model in agenerated force model.
 7. The method of claim 1, further comprisinggenerating, by the one or more computing devices, a display of therespective simulated deformation.
 8. The method of claim 7, whereingenerating the display of the respective simulated deformation comprisesgenerating the display of the respective simulated deformation inresponse to receiving a respective request to display the respectivesimulated deformation.
 9. The method of claim 8, wherein the respectiverequest to display the respective simulated deformation comprises atleast one of text-based search query or an image-based search query. 10.A computer-based system comprising: at least one processor; and datastorage comprising instructions, that when executed by the at least oneprocessor, cause the computer-based system to: cause a force to beapplied to an object to cause a deformation of the object; during thedeformation of the object, cause a plurality of reference scans of theobject to be captured; determine a three-dimensional (3D) object datamodel representing the object, wherein the 3D object data model isdetermined based at least in part on the plurality of reference scans;identify a constraint point of the 3D object data model, wherein theconstraint point represents a point within a predetermined range of apoint of minimum deformation of the object; determine a predefineddeformation model that defines a simulated deformation simulating atleast a portion of the deformation of the object based on the constraintpoint; receive a request to generate a respective simulated deformationof the object based on a particular force; and selecting, from aplurality of force models, at least one force model for the object basedon the particular force, wherein a respective force model includesinformation indicative of a force, a constraint point on the 3D objectdata model, and reference to a deformation model for the constraintpoint of the object; and generating, by the one or more computingdevices, the respective simulated deformation of the object based on theselected force model, wherein the respective simulated deformationincludes a representation of a visualization of deformation of theobject.
 11. The computer-based system of claim 10, wherein theinstructions are further executable by the at least one processor tocause the computer-based system to: generate, the plurality of forcemodels for the 3D object data model, wherein the plurality of forcemodels comprise information indicative of the force, the constraintpoint, and the predefined deformation model selected for the constraintpoint; and store the generated force models in the data storage.
 12. Thecomputer-based system of claim 10, further comprising a web-basedinterface, wherein the instructions are further executable by the atleast one processor to cause the computer-based system to: receive, viathe web-based interface, a request to generate the respective simulateddeformation; and generate, via the web-based interface, the respectivesimulated deformation using a generated force model.
 13. Thecomputer-based system of claim 12, wherein the web-based interface isconfigured to provide a web-based application.
 14. The computer-basedsystem of claim 13, wherein the instructions are further executable bythe at least one processor to cause the computer-based system togenerate a display of the respective simulated deformation in theweb-based application.
 15. The computer-based system of claim 14,wherein generating the display comprises generating the display inresponse to a request to generate the display.
 16. An article ofmanufacture including a non-transitory computer-readable medium, havingstored therein program instructions that, upon execution by a computingdevice, cause the computing device to perform functions comprising:causing a force to be applied to an object to cause a deformation of theobject; during the deformation of the object, causing a plurality ofreference scans of the object to be captured; determining athree-dimensional (3D) object data model representing the object,wherein the 3D object data model is determined based at least in part onthe plurality of reference scans; identifying a constraint point of the3D object data model, wherein the constraint point represents a pointwithin a predetermined range of a point of minimum deformation of theobject; and determining, by the one or more computing devices, apredefined deformation model that defines a simulated deformationsimulating at least a portion of the deformation of the object based onthe constraint point; receiving a request to generate a respectivesimulated deformation of the object based on a particular force;selecting, from a plurality of force models, at least one force modelfor the object based on the particular force, wherein a respective forcemodel includes information indicative of a force, a constraint point onthe 3D object data model, and reference to a deformation model for theconstraint point of the object; and generating, by the one or morecomputing devices, the respective simulated deformation of the objectbased on the selected force model, wherein the respective simulateddeformation includes a representation of a visualization of deformationof the object.
 17. The article of manufacture of claim 16, wherein theforce comprises at least one of a linear force or a centrifugal force.18. The article of manufacture of claim 16, the functions furthercomprising: generating, the plurality of force models for the 3D objectdata model, wherein the plurality of force models comprise informationindicative of the force, the constraint point, and the predefineddeformation model selected for the constraint point; and storing thegenerated force models in a database.
 19. The article of manufacture ofclaim 18, the functions further comprising: receiving a request togenerate the respective simulated deformation; and generating therespective simulated deformation using a generated force model.